# 创建
tp = ()
tp1 = (1,)
tp2 = ('a','b','c','d')
tp3 = tuple([1,3,7,5,11,43,46])

# 运算符
res = tp1 + tp2 
print(res)

res1 = tp1*3
print(res1)

# 删除整个元组
del tp1

# 元组访问
res2 = tp3[-2]
print(res2)
res3 = tp3[2]
print(res3)

# 元组切片
res4 = tp3[2::3]
print(res4)

# 元组遍历
for val in tp3:
    print(val)

for inx,val in enumerate(tp3):
    print(inx,val)

# 成员判断
res5 = 7 in tp3
print(res5)

res6 = 5 not in tp3
print(res6)


# 内置方法在元组中应用
print(len(tp3))
print(max(tp3))
print(min(tp3))

print(sorted(tp3))
print(reversed(tp3))




"""
元组、列表区别：
1、创建方式不同，列表用[],元组用(),当只有一个元素时，元组中该元素必须加逗号，列表则不需要
2、列表是可变序列集合，列表中元素支持增删改，而元组是不可变序列集合，元组中一旦创建，元组中的元素和位置就固定不变即元组中元素不支持增删改等操作
3、由于元组牺牲了增删改操作，使内存中的存储结构更加简洁，所以创建元组的效率要比列表快的多，所占存储空间也更f小，所以"能用元组的地方就不用列表"
4、元组可以用作映射中的键、集合成员，而列表则不行
"""